Date.prototype.format = function (format = 'yyyy-MM-dd') {
  const o = {
    "M+": this.getMonth() + 1, //month
    "d+": this.getDate(), //day
    "h+": this.getHours(), //hour
    "H+": this.getHours(), //hour
    "m+": this.getMinutes(), //minute
    "s+": this.getSeconds(), //second
    "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
    "S": this.getMilliseconds() //millisecond
  }
  if (/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  }

  for (const k in o) {
    if (new RegExp("(" + k + ")").test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
    }
  }
  return format;
}

Date.prototype.formatTime = function (format = 'yyyy-MM-dd hh:mm:ss') {
  return this.format(format);
}

Date.format = (timestamp, format = 'yyyy-MM-dd') =>
  timestamp ? new Date(timestamp).format(format) : '';

Date.formatTime = (timestamp, format = 'yyyy-MM-dd hh:mm:ss') => Date.format(timestamp, format);
